<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>DSF2FLAC: dsdSampleReader Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">DSF2FLAC
   
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<div class="title">dsdSampleReader Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="dsdSampleReader" -->
<p><code>#include &lt;<a class="el" href="dsd__sample__reader_8h_source.html">dsd_sample_reader.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for dsdSampleReader:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classdsdSampleReader.png" usemap="#dsdSampleReader_map" alt=""/>
  <map id="dsdSampleReader_map" name="dsdSampleReader_map">
<area href="classdsdiffFileReader.html" alt="dsdiffFileReader" shape="rect" coords="0,56,114,80"/>
<area href="classdsfFileReader.html" alt="dsfFileReader" shape="rect" coords="124,56,238,80"/>
</map>
 </div></div>

<p><a href="classdsdSampleReader-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#abbd485ce1122365c410a58e02f677a6e">dsdSampleReader</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a184839f3af3883f689483833fd12d8de">~dsdSampleReader</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a4e00ddfc99a3629c53f39fabbc057fd2">step</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a2b1f95917a27acf7b3f75034fafa8e0f">rewind</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="dsf2flac__types_8h.html#afb5a83fbea5217eba40a40381a60bf9d">dsf2flac_int64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#ae281735da76dbc5cd921bb27bd99e364">getLength</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="dsf2flac__types_8h.html#ae94ca55c71bf85f62e6d46ad0f70e00d">dsf2flac_uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a36eb5831b24efb0da0896c7df4105983">getNumChannels</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="dsf2flac__types_8h.html#ae94ca55c71bf85f62e6d46ad0f70e00d">dsf2flac_uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a54fbb420d521cfb9da0419082f92b305">getSamplingFreq</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">ID3_Tag&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#ad00ddb6fb213e9093f9123de5e743fd5">getID3Tag</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual ID3_Tag&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a7f5e3ceb6c63f7d678da564005610c49">getID3Tag</a> (<a class="el" href="dsf2flac__types_8h.html#ae94ca55c71bf85f62e6d46ad0f70e00d">dsf2flac_uint32</a> trackNum)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a461c65aadcb4853ecf0894f74861352b">msbIsPlayedFirst</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="dsf2flac__types_8h.html#a50a63c812600e2f1567435073d1ceec6">dsf2flac_uint8</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a3fe0153b21a529db5c849a79ac75b90a">getIdleSample</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#ac24dcb34d45195e26dda7358e4b793e6">samplesAvailable</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="dsf2flac__types_8h.html#ae94ca55c71bf85f62e6d46ad0f70e00d">dsf2flac_uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#abef759cf3c802a05c5b49035a4d928b2">getNumTracks</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="dsf2flac__types_8h.html#a92edf8b6c6a2796bebd22252f84ea0c3">dsf2flac_uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a0034f7b0eab16a869cd4d9c3609f7b59">getTrackStart</a> (<a class="el" href="dsf2flac__types_8h.html#ae94ca55c71bf85f62e6d46ad0f70e00d">dsf2flac_uint32</a> trackNum)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="dsf2flac__types_8h.html#a92edf8b6c6a2796bebd22252f84ea0c3">dsf2flac_uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#ae5ed5723b542ae25d0f2232d0b3965d8">getTrackEnd</a> (<a class="el" href="dsf2flac__types_8h.html#ae94ca55c71bf85f62e6d46ad0f70e00d">dsf2flac_uint32</a> trackNum)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">boost::circular_buffer<br class="typebreak"/>
&lt; <a class="el" href="dsf2flac__types_8h.html#a50a63c812600e2f1567435073d1ceec6">dsf2flac_uint8</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a23a366d4af7c6aba7b85233b0c68defc">getBuffer</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#aaa20c369d9e952b4c75842f4d4fccc4d">setBufferLength</a> (<a class="el" href="dsf2flac__types_8h.html#ae94ca55c71bf85f62e6d46ad0f70e00d">dsf2flac_uint32</a> <a class="el" href="classdsdSampleReader.html#a77a7487cbcd4669dd18fe823e48142a0">bufferLength</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="dsf2flac__types_8h.html#ae94ca55c71bf85f62e6d46ad0f70e00d">dsf2flac_uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a6327c5cfd11c3356825859e56cce40b1">getBufferLength</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="dsf2flac__types_8h.html#afb5a83fbea5217eba40a40381a60bf9d">dsf2flac_int64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#af803f0a6b6c277963052ad5e04189cfa">getPosition</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="dsf2flac__types_8h.html#afb5a83fbea5217eba40a40381a60bf9d">dsf2flac_int64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a8a9109652cb9f3b952366755e7e7d318">getPosition</a> (<a class="el" href="dsf2flac__types_8h.html#afb5a83fbea5217eba40a40381a60bf9d">dsf2flac_int64</a> bufferPos)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="dsf2flac__types_8h.html#aad8d9b1c27a6e9fbe39f194360bf0324">dsf2flac_float64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#af2d7ad734586d9ea8261d76cf8e00a6e">getPositionInSeconds</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="dsf2flac__types_8h.html#aad8d9b1c27a6e9fbe39f194360bf0324">dsf2flac_float64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a2c9a61c16482e35bfe1e3042d6258a5e">getPositionAsPercent</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="dsf2flac__types_8h.html#aad8d9b1c27a6e9fbe39f194360bf0324">dsf2flac_float64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a0583c0f5220e263542f9c79ffea72f3c">getLengthInSeconds</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#aeaa0584308f43a61774d61aab23f4c05">isValid</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a95a34e3224f28599b64ba9af5194fb8c">getErrorMsg</a> ()</td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#ab9792a9265e81b6d8361582591fac088">latin1_to_utf8</a> (char *latin1)</td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#adeca9c9fa4b0ba30d89518d530fd5b5a">allocateBuffer</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a3b0ad077d0df4e4eb36d822abb0bda53">clearBuffer</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a6ffdfd27d84c7123864cfab52ff54142">resizeBuffer</a> ()</td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">boost::circular_buffer<br class="typebreak"/>
&lt; <a class="el" href="dsf2flac__types_8h.html#a50a63c812600e2f1567435073d1ceec6">dsf2flac_uint8</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#ad1c0480336058f033a73c5e8328a8f5e">circularBuffers</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="dsf2flac__types_8h.html#afb5a83fbea5217eba40a40381a60bf9d">dsf2flac_int64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a41b9d37caa8af8b64ee3ab699e438a65">posMarker</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="dsf2flac__types_8h.html#ae94ca55c71bf85f62e6d46ad0f70e00d">dsf2flac_uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#afc2b8a9560bb4055b1c82a80dd039fab">samplesPerChar</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a2122f3e6b49fca5436118138ec6d7046">valid</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a4c96c7524b1095db5c83605a3ddd6edf">errorMsg</a></td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="dsf2flac__types_8h.html#ae94ca55c71bf85f62e6d46ad0f70e00d">dsf2flac_uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a77a7487cbcd4669dd18fe823e48142a0">bufferLength</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdsdSampleReader.html#a5f61ab303e2160bd46fe756cb53dbb05">isBufferAllocated</a></td></tr>
</table>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="abbd485ce1122365c410a58e02f677a6e"></a><!-- doxytag: member="dsdSampleReader::dsdSampleReader" ref="abbd485ce1122365c410a58e02f677a6e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdsdSampleReader.html#abbd485ce1122365c410a58e02f677a6e">dsdSampleReader::dsdSampleReader</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>dsf2flac - <a href="http://code.google.com/p/dsf2flac/">http://code.google.com/p/dsf2flac/</a></p>
<p>A file conversion tool for translating dsf dsd audio files into flac pcm audio files.</p>
<p>Copyright (c) 2013 by respective authors.</p>
<p>This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.</p>
<p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</p>
<p>You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</p>
<p>Acknowledgements</p>
<p>Many thanks to the following authors and projects whose work has greatly helped the development of this tool.</p>
<p>Sebastian Gesemann - dsd2pcm (<a href="http://code.google.com/p/dsd2pcm/">http://code.google.com/p/dsd2pcm/</a>) SACD Ripper (<a href="http://code.google.com/p/sacd-ripper/">http://code.google.com/p/sacd-ripper/</a>) Maxim V.Anisiutkin - foo_input_sacd (<a href="http://sourceforge.net/projects/sacddecoder/files/">http://sourceforge.net/projects/sacddecoder/files/</a>) Vladislav Goncharov - foo_input_sacd_hq (<a href="http://vladgsound.wordpress.com">http://vladgsound.wordpress.com</a>) Jesus R - www.sonore.us <a class="el" href="dsd__sample__reader_8cpp.html">dsd_sample_reader.cpp</a></p>
<p>Implementation of class <a class="el" href="classdsdSampleReader.html">dsdSampleReader</a>.</p>
<p>Abstract class defining anything which reads dsd samples from something. If someone feels like it they could write an implementation of this class and allow this convertor to work with other dsd sources (e.g. dsdiff files). <a class="el" href="classdsdSampleReader.html#abbd485ce1122365c410a58e02f677a6e">dsdSampleReader::dsdSampleReader()</a></p>
<p>Constructor! </p>

</div>
</div>
<a class="anchor" id="a184839f3af3883f689483833fd12d8de"></a><!-- doxytag: member="dsdSampleReader::~dsdSampleReader" ref="a184839f3af3883f689483833fd12d8de" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdsdSampleReader.html#a184839f3af3883f689483833fd12d8de">dsdSampleReader::~dsdSampleReader</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p><a class="el" href="classdsdSampleReader.html#abbd485ce1122365c410a58e02f677a6e">dsdSampleReader::dsdSampleReader()</a></p>
<p>Destructor, free the circular buffers. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="adeca9c9fa4b0ba30d89518d530fd5b5a"></a><!-- doxytag: member="dsdSampleReader::allocateBuffer" ref="adeca9c9fa4b0ba30d89518d530fd5b5a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classdsdSampleReader.html#adeca9c9fa4b0ba30d89518d530fd5b5a">dsdSampleReader::allocateBuffer</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>void <a class="el" href="classdsdSampleReader.html#adeca9c9fa4b0ba30d89518d530fd5b5a">dsdSampleReader::allocateBuffer()</a></p>
<p>Protected function, allocate the buffer. MUST be called by implementors on construction. </p>

</div>
</div>
<a class="anchor" id="a3b0ad077d0df4e4eb36d822abb0bda53"></a><!-- doxytag: member="dsdSampleReader::clearBuffer" ref="a3b0ad077d0df4e4eb36d822abb0bda53" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classdsdSampleReader.html#a3b0ad077d0df4e4eb36d822abb0bda53">dsdSampleReader::clearBuffer</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>void <a class="el" href="classdsdSampleReader.html#a3b0ad077d0df4e4eb36d822abb0bda53">dsdSampleReader::clearBuffer()</a></p>
<p>Protected function, clear the buffer - fill with idleSamples MUST be called by implementors on construction. </p>

</div>
</div>
<a class="anchor" id="a23a366d4af7c6aba7b85233b0c68defc"></a><!-- doxytag: member="dsdSampleReader::getBuffer" ref="a23a366d4af7c6aba7b85233b0c68defc" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::circular_buffer&lt; <a class="el" href="dsf2flac__types_8h.html#a50a63c812600e2f1567435073d1ceec6">dsf2flac_uint8</a> &gt; * <a class="el" href="classdsdSampleReader.html#a23a366d4af7c6aba7b85233b0c68defc">dsdSampleReader::getBuffer</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>boost::circular_buffer&lt;dsf2flac_uint8&gt;* <a class="el" href="classdsdSampleReader.html#a23a366d4af7c6aba7b85233b0c68defc">dsdSampleReader::getBuffer()</a></p>
<p>Returns the circular buffers, one per channel in an array. When <a class="el" href="classdsdSampleReader.html#a4e00ddfc99a3629c53f39fabbc057fd2">step()</a> is called a new 1byte (8 dsd bits) sample is added to the start of the buffer and one is removed from the end. If you grab this buffer you can easily do some fir filtering by multiplying the contents by an impulse response, call <a class="el" href="classdsdSampleReader.html#a4e00ddfc99a3629c53f39fabbc057fd2">step()</a> to shift to the next dsd sample and do the same! </p>

</div>
</div>
<a class="anchor" id="a6327c5cfd11c3356825859e56cce40b1"></a><!-- doxytag: member="dsdSampleReader::getBufferLength" ref="a6327c5cfd11c3356825859e56cce40b1" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="dsf2flac__types_8h.html#ae94ca55c71bf85f62e6d46ad0f70e00d">dsf2flac_uint32</a> <a class="el" href="classdsdSampleReader.html#a6327c5cfd11c3356825859e56cce40b1">dsdSampleReader::getBufferLength</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>dsf2flac_uint32 <a class="el" href="classdsdSampleReader.html#a6327c5cfd11c3356825859e56cce40b1">dsdSampleReader::getBufferLength()</a></p>
<p>Returns the current length of the buffers. </p>

</div>
</div>
<a class="anchor" id="a95a34e3224f28599b64ba9af5194fb8c"></a><!-- doxytag: member="dsdSampleReader::getErrorMsg" ref="a95a34e3224f28599b64ba9af5194fb8c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string <a class="el" href="classdsdSampleReader.html#a95a34e3224f28599b64ba9af5194fb8c">dsdSampleReader::getErrorMsg</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>bool <a class="el" href="classdsdSampleReader.html#a95a34e3224f28599b64ba9af5194fb8c">dsdSampleReader::getErrorMsg()</a></p>
<p>Returns a message describing the last error which caused the reader to become invalid. </p>

</div>
</div>
<a class="anchor" id="ad00ddb6fb213e9093f9123de5e743fd5"></a><!-- doxytag: member="dsdSampleReader::getID3Tag" ref="ad00ddb6fb213e9093f9123de5e743fd5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ID3_Tag <a class="el" href="classdsdSampleReader.html#ad00ddb6fb213e9093f9123de5e743fd5">dsdSampleReader::getID3Tag</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a7f5e3ceb6c63f7d678da564005610c49"></a><!-- doxytag: member="dsdSampleReader::getID3Tag" ref="a7f5e3ceb6c63f7d678da564005610c49" args="(dsf2flac_uint32 trackNum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual ID3_Tag <a class="el" href="classdsdSampleReader.html#ad00ddb6fb213e9093f9123de5e743fd5">dsdSampleReader::getID3Tag</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="dsf2flac__types_8h.html#ae94ca55c71bf85f62e6d46ad0f70e00d">dsf2flac_uint32</a>&#160;</td>
          <td class="paramname"><em>trackNum</em></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="classdsdiffFileReader.html#a72add784b0326974b1d01994d5f194ba">dsdiffFileReader</a>, and <a class="el" href="classdsfFileReader.html#a6386225663a73402e361e9aed24fa9cc">dsfFileReader</a>.</p>

</div>
</div>
<a class="anchor" id="a3fe0153b21a529db5c849a79ac75b90a"></a><!-- doxytag: member="dsdSampleReader::getIdleSample" ref="a3fe0153b21a529db5c849a79ac75b90a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="dsf2flac__types_8h.html#a50a63c812600e2f1567435073d1ceec6">dsf2flac_uint8</a> <a class="el" href="classdsdSampleReader.html#a3fe0153b21a529db5c849a79ac75b90a">dsdSampleReader::getIdleSample</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ae281735da76dbc5cd921bb27bd99e364"></a><!-- doxytag: member="dsdSampleReader::getLength" ref="ae281735da76dbc5cd921bb27bd99e364" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="dsf2flac__types_8h.html#afb5a83fbea5217eba40a40381a60bf9d">dsf2flac_int64</a> <a class="el" href="classdsdSampleReader.html#ae281735da76dbc5cd921bb27bd99e364">dsdSampleReader::getLength</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="classdsdiffFileReader.html#ab499ac4a334327d7da1ab8acc3f77eeb">dsdiffFileReader</a>, and <a class="el" href="classdsfFileReader.html#ab903d8883913dcab2c32610ee0b1c1c2">dsfFileReader</a>.</p>

</div>
</div>
<a class="anchor" id="a0583c0f5220e263542f9c79ffea72f3c"></a><!-- doxytag: member="dsdSampleReader::getLengthInSeconds" ref="a0583c0f5220e263542f9c79ffea72f3c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="dsf2flac__types_8h.html#aad8d9b1c27a6e9fbe39f194360bf0324">dsf2flac_float64</a> <a class="el" href="classdsdSampleReader.html#a0583c0f5220e263542f9c79ffea72f3c">dsdSampleReader::getLengthInSeconds</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>dsf2flac_float64 <a class="el" href="classdsdSampleReader.html#a0583c0f5220e263542f9c79ffea72f3c">dsdSampleReader::getLengthInSeconds()</a></p>
<p>Return the total length of the reader in seconds </p>

</div>
</div>
<a class="anchor" id="a36eb5831b24efb0da0896c7df4105983"></a><!-- doxytag: member="dsdSampleReader::getNumChannels" ref="a36eb5831b24efb0da0896c7df4105983" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="dsf2flac__types_8h.html#ae94ca55c71bf85f62e6d46ad0f70e00d">dsf2flac_uint32</a> <a class="el" href="classdsdSampleReader.html#a36eb5831b24efb0da0896c7df4105983">dsdSampleReader::getNumChannels</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="classdsdiffFileReader.html#a87a51486ae8526dac7ed40ee3686704c">dsdiffFileReader</a>, and <a class="el" href="classdsfFileReader.html#ac715b37991a3d9a8143e99d4b6ecd3e7">dsfFileReader</a>.</p>

</div>
</div>
<a class="anchor" id="abef759cf3c802a05c5b49035a4d928b2"></a><!-- doxytag: member="dsdSampleReader::getNumTracks" ref="abef759cf3c802a05c5b49035a4d928b2" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="dsf2flac__types_8h.html#ae94ca55c71bf85f62e6d46ad0f70e00d">dsf2flac_uint32</a> <a class="el" href="classdsdSampleReader.html#abef759cf3c802a05c5b49035a4d928b2">dsdSampleReader::getNumTracks</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="classdsdiffFileReader.html#a2b1c1b04ad8071f79084ffed7f008898">dsdiffFileReader</a>.</p>

</div>
</div>
<a class="anchor" id="af803f0a6b6c277963052ad5e04189cfa"></a><!-- doxytag: member="dsdSampleReader::getPosition" ref="af803f0a6b6c277963052ad5e04189cfa" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="dsf2flac__types_8h.html#afb5a83fbea5217eba40a40381a60bf9d">dsf2flac_int64</a> <a class="el" href="classdsdSampleReader.html#af803f0a6b6c277963052ad5e04189cfa">dsdSampleReader::getPosition</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a8a9109652cb9f3b952366755e7e7d318"></a><!-- doxytag: member="dsdSampleReader::getPosition" ref="a8a9109652cb9f3b952366755e7e7d318" args="(dsf2flac_int64 bufferPos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="dsf2flac__types_8h.html#afb5a83fbea5217eba40a40381a60bf9d">dsf2flac_int64</a> <a class="el" href="classdsdSampleReader.html#af803f0a6b6c277963052ad5e04189cfa">dsdSampleReader::getPosition</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="dsf2flac__types_8h.html#afb5a83fbea5217eba40a40381a60bf9d">dsf2flac_int64</a>&#160;</td>
          <td class="paramname"><em>bufferPos</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a2c9a61c16482e35bfe1e3042d6258a5e"></a><!-- doxytag: member="dsdSampleReader::getPositionAsPercent" ref="a2c9a61c16482e35bfe1e3042d6258a5e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="dsf2flac__types_8h.html#aad8d9b1c27a6e9fbe39f194360bf0324">dsf2flac_float64</a> <a class="el" href="classdsdSampleReader.html#a2c9a61c16482e35bfe1e3042d6258a5e">dsdSampleReader::getPositionAsPercent</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>dsf2flac_float64 <a class="el" href="classdsdSampleReader.html#a2c9a61c16482e35bfe1e3042d6258a5e">dsdSampleReader::getPositionAsPercent()</a></p>
<p>Return the current position as a percent of the reader length. </p>

</div>
</div>
<a class="anchor" id="af2d7ad734586d9ea8261d76cf8e00a6e"></a><!-- doxytag: member="dsdSampleReader::getPositionInSeconds" ref="af2d7ad734586d9ea8261d76cf8e00a6e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="dsf2flac__types_8h.html#aad8d9b1c27a6e9fbe39f194360bf0324">dsf2flac_float64</a> <a class="el" href="classdsdSampleReader.html#af2d7ad734586d9ea8261d76cf8e00a6e">dsdSampleReader::getPositionInSeconds</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>dsf2flac_float64 <a class="el" href="classdsdSampleReader.html#af2d7ad734586d9ea8261d76cf8e00a6e">dsdSampleReader::getPositionInSeconds()</a></p>
<p>Return the current position in seconds. </p>

</div>
</div>
<a class="anchor" id="a54fbb420d521cfb9da0419082f92b305"></a><!-- doxytag: member="dsdSampleReader::getSamplingFreq" ref="a54fbb420d521cfb9da0419082f92b305" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="dsf2flac__types_8h.html#ae94ca55c71bf85f62e6d46ad0f70e00d">dsf2flac_uint32</a> <a class="el" href="classdsdSampleReader.html#a54fbb420d521cfb9da0419082f92b305">dsdSampleReader::getSamplingFreq</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="classdsdiffFileReader.html#aa5b4aa095307d57131bbbeadd169435d">dsdiffFileReader</a>, and <a class="el" href="classdsfFileReader.html#aabb15702e6e452f492b2c1e5fc1d170f">dsfFileReader</a>.</p>

</div>
</div>
<a class="anchor" id="ae5ed5723b542ae25d0f2232d0b3965d8"></a><!-- doxytag: member="dsdSampleReader::getTrackEnd" ref="ae5ed5723b542ae25d0f2232d0b3965d8" args="(dsf2flac_uint32 trackNum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="dsf2flac__types_8h.html#a92edf8b6c6a2796bebd22252f84ea0c3">dsf2flac_uint64</a> <a class="el" href="classdsdSampleReader.html#ae5ed5723b542ae25d0f2232d0b3965d8">dsdSampleReader::getTrackEnd</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="dsf2flac__types_8h.html#ae94ca55c71bf85f62e6d46ad0f70e00d">dsf2flac_uint32</a>&#160;</td>
          <td class="paramname"><em>trackNum</em></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="classdsdiffFileReader.html#a8e87af43c9d73ee255daeb072c76bd66">dsdiffFileReader</a>.</p>

</div>
</div>
<a class="anchor" id="a0034f7b0eab16a869cd4d9c3609f7b59"></a><!-- doxytag: member="dsdSampleReader::getTrackStart" ref="a0034f7b0eab16a869cd4d9c3609f7b59" args="(dsf2flac_uint32 trackNum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="dsf2flac__types_8h.html#a92edf8b6c6a2796bebd22252f84ea0c3">dsf2flac_uint64</a> <a class="el" href="classdsdSampleReader.html#a0034f7b0eab16a869cd4d9c3609f7b59">dsdSampleReader::getTrackStart</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="dsf2flac__types_8h.html#ae94ca55c71bf85f62e6d46ad0f70e00d">dsf2flac_uint32</a>&#160;</td>
          <td class="paramname"><em>trackNum</em></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="classdsdiffFileReader.html#ab5130c1e6f0ac01d60db3dec3e1ea514">dsdiffFileReader</a>.</p>

</div>
</div>
<a class="anchor" id="aeaa0584308f43a61774d61aab23f4c05"></a><!-- doxytag: member="dsdSampleReader::isValid" ref="aeaa0584308f43a61774d61aab23f4c05" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classdsdSampleReader.html#aeaa0584308f43a61774d61aab23f4c05">dsdSampleReader::isValid</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>bool <a class="el" href="classdsdSampleReader.html#aeaa0584308f43a61774d61aab23f4c05">dsdSampleReader::isValid()</a></p>
<p>Return false if the reader is invalid (format/file error for example). </p>

</div>
</div>
<a class="anchor" id="ab9792a9265e81b6d8361582591fac088"></a><!-- doxytag: member="dsdSampleReader::latin1_to_utf8" ref="ab9792a9265e81b6d8361582591fac088" args="(char *latin1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* <a class="el" href="classdsdSampleReader.html#ab9792a9265e81b6d8361582591fac088">dsdSampleReader::latin1_to_utf8</a> </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>latin1</em></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a461c65aadcb4853ecf0894f74861352b"></a><!-- doxytag: member="dsdSampleReader::msbIsPlayedFirst" ref="a461c65aadcb4853ecf0894f74861352b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classdsdSampleReader.html#a461c65aadcb4853ecf0894f74861352b">dsdSampleReader::msbIsPlayedFirst</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="classdsdiffFileReader.html#a7c4c8d3960ecb334e42ac7a8a9c4875b">dsdiffFileReader</a>, and <a class="el" href="classdsfFileReader.html#a69546c0ae6cb4c3dcf6ff6174d72bdd6">dsfFileReader</a>.</p>

</div>
</div>
<a class="anchor" id="a6ffdfd27d84c7123864cfab52ff54142"></a><!-- doxytag: member="dsdSampleReader::resizeBuffer" ref="a6ffdfd27d84c7123864cfab52ff54142" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classdsdSampleReader.html#a6ffdfd27d84c7123864cfab52ff54142">dsdSampleReader::resizeBuffer</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>void <a class="el" href="classdsdSampleReader.html#a6ffdfd27d84c7123864cfab52ff54142">dsdSampleReader::resizeBuffer()</a></p>
<p>Protected function, resize the buffer and then clear the buffer. MUST be called by implementors on construction. </p>

</div>
</div>
<a class="anchor" id="a2b1f95917a27acf7b3f75034fafa8e0f"></a><!-- doxytag: member="dsdSampleReader::rewind" ref="a2b1f95917a27acf7b3f75034fafa8e0f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classdsdSampleReader.html#a2b1f95917a27acf7b3f75034fafa8e0f">dsdSampleReader::rewind</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="classdsdiffFileReader.html#aa6ff9e680ec7f5b7c1abe5db3428faa7">dsdiffFileReader</a>, and <a class="el" href="classdsfFileReader.html#af32d835cbb5cca4420a002519ab4ef59">dsfFileReader</a>.</p>

</div>
</div>
<a class="anchor" id="ac24dcb34d45195e26dda7358e4b793e6"></a><!-- doxytag: member="dsdSampleReader::samplesAvailable" ref="ac24dcb34d45195e26dda7358e4b793e6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classdsdSampleReader.html#ac24dcb34d45195e26dda7358e4b793e6">dsdSampleReader::samplesAvailable</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="classdsdiffFileReader.html#af75ba8efcf1808694244117154b97cd3">dsdiffFileReader</a>, and <a class="el" href="classdsfFileReader.html#ae1abec9e1642eae73a97638195dd68cd">dsfFileReader</a>.</p>

</div>
</div>
<a class="anchor" id="aaa20c369d9e952b4c75842f4d4fccc4d"></a><!-- doxytag: member="dsdSampleReader::setBufferLength" ref="aaa20c369d9e952b4c75842f4d4fccc4d" args="(dsf2flac_uint32 bufferLength)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classdsdSampleReader.html#aaa20c369d9e952b4c75842f4d4fccc4d">dsdSampleReader::setBufferLength</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="dsf2flac__types_8h.html#ae94ca55c71bf85f62e6d46ad0f70e00d">dsf2flac_uint32</a>&#160;</td>
          <td class="paramname"><em>b</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>void <a class="el" href="classdsdSampleReader.html#aaa20c369d9e952b4c75842f4d4fccc4d">dsdSampleReader::setBufferLength(dsf2flac_uint32 b)</a></p>
<p>Sets the length of the buffers. WARNING! calling this will cause the dsd reader to be rewound to the beginning and the buffer will be filled by <a class="el" href="classdsdSampleReader.html#a3fe0153b21a529db5c849a79ac75b90a">getIdleSample()</a>; </p>

</div>
</div>
<a class="anchor" id="a4e00ddfc99a3629c53f39fabbc057fd2"></a><!-- doxytag: member="dsdSampleReader::step" ref="a4e00ddfc99a3629c53f39fabbc057fd2" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classdsdSampleReader.html#a4e00ddfc99a3629c53f39fabbc057fd2">dsdSampleReader::step</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="classdsdiffFileReader.html#a87c3469f452e4e985e1634122639a615">dsdiffFileReader</a>, and <a class="el" href="classdsfFileReader.html#a43b5452138d47e4d17e49d23f0603410">dsfFileReader</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a77a7487cbcd4669dd18fe823e48142a0"></a><!-- doxytag: member="dsdSampleReader::bufferLength" ref="a77a7487cbcd4669dd18fe823e48142a0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="dsf2flac__types_8h.html#ae94ca55c71bf85f62e6d46ad0f70e00d">dsf2flac_uint32</a> <a class="el" href="classdsdSampleReader.html#a77a7487cbcd4669dd18fe823e48142a0">dsdSampleReader::bufferLength</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ad1c0480336058f033a73c5e8328a8f5e"></a><!-- doxytag: member="dsdSampleReader::circularBuffers" ref="ad1c0480336058f033a73c5e8328a8f5e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boost::circular_buffer&lt;<a class="el" href="dsf2flac__types_8h.html#a50a63c812600e2f1567435073d1ceec6">dsf2flac_uint8</a>&gt;* <a class="el" href="classdsdSampleReader.html#ad1c0480336058f033a73c5e8328a8f5e">dsdSampleReader::circularBuffers</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a4c96c7524b1095db5c83605a3ddd6edf"></a><!-- doxytag: member="dsdSampleReader::errorMsg" ref="a4c96c7524b1095db5c83605a3ddd6edf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string <a class="el" href="classdsdSampleReader.html#a4c96c7524b1095db5c83605a3ddd6edf">dsdSampleReader::errorMsg</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a5f61ab303e2160bd46fe756cb53dbb05"></a><!-- doxytag: member="dsdSampleReader::isBufferAllocated" ref="a5f61ab303e2160bd46fe756cb53dbb05" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classdsdSampleReader.html#a5f61ab303e2160bd46fe756cb53dbb05">dsdSampleReader::isBufferAllocated</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a41b9d37caa8af8b64ee3ab699e438a65"></a><!-- doxytag: member="dsdSampleReader::posMarker" ref="a41b9d37caa8af8b64ee3ab699e438a65" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="dsf2flac__types_8h.html#afb5a83fbea5217eba40a40381a60bf9d">dsf2flac_int64</a> <a class="el" href="classdsdSampleReader.html#a41b9d37caa8af8b64ee3ab699e438a65">dsdSampleReader::posMarker</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="afc2b8a9560bb4055b1c82a80dd039fab"></a><!-- doxytag: member="dsdSampleReader::samplesPerChar" ref="afc2b8a9560bb4055b1c82a80dd039fab" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="dsf2flac__types_8h.html#ae94ca55c71bf85f62e6d46ad0f70e00d">dsf2flac_uint32</a> <a class="el" href="classdsdSampleReader.html#afc2b8a9560bb4055b1c82a80dd039fab">dsdSampleReader::samplesPerChar</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a2122f3e6b49fca5436118138ec6d7046"></a><!-- doxytag: member="dsdSampleReader::valid" ref="a2122f3e6b49fca5436118138ec6d7046" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classdsdSampleReader.html#a2122f3e6b49fca5436118138ec6d7046">dsdSampleReader::valid</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="dsd__sample__reader_8h_source.html">dsd_sample_reader.h</a></li>
<li><a class="el" href="dsd__sample__reader_8cpp.html">dsd_sample_reader.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>



<hr class="footer"/><address class="footer"><small>
Generated on Fri Sep 13 2013 14:17:52 for DSF2FLAC by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>

</body>
</html>
